package waal.pc.frontend.config;

import javax.swing.DefaultListModel;

import waal.pc.backend.hub.Hub;
import waal.pc.backend.module.Module;
import waal.pc.backend.module.ModuleEvent;
import waal.pc.backend.module.ModuleEventListener;

public class ModuleList extends DefaultListModel<Module> implements ModuleEventListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = 8379770820581514816L;

	private ModuleArea moduleArea;
	private int lastIndex = 0;
	
	public ModuleList(ModuleArea moduleArea, Hub hub) {
		hub.addModuleEventListener(this);
		this.moduleArea = moduleArea;
	}
	
	
	
	@Override
	public void actionModuleEvent(ModuleEvent e) {
		switch(e.getEvent()) {
		case 1: //Module added
			this.addElement(e.getModule());
			this.moduleArea.makeChannelsForModule(e.getModule());
			break;
		case 2: // Module remove
			this.removeElement(e.getModule());
			break;
		case 3: //Module change active state 
			this.moduleArea.updateButton(e.getModule());
			break;
		case 4: //Channel config change
			this.moduleArea.updateButton(e.getModule());
			break;
		}
	}



	public int getLastIndex() {
		return lastIndex;
	}

	public void setLastIndex(int lastIndex) {
		this.lastIndex = lastIndex;
	}
}
